Video content is often digitally encoded in a compressed format to minimize an amount of storage necessary to store the video content, and to minimize the amount of bandwidth necessary for transmitting the video content to content viewers. Popular video compression standards are the MPEG-2 format and the JVT/H.264/MPEG AVC (hereinafter “H.264”) format. These compression standards use both intra coding and inter coding.
Intra coding utilizes spatial redundancy within a picture or slice to reduce the amount of image data necessary to reproduce the picture or slice by describing successive image pixels or patterns of pixels jointly. An image that is intra coded is commonly known as an intra picture (I-picture) for MPEG-2 encoded video and as an intra slice (I-slice) for H.264 encoded video.
Inter coding utilizes redundancy between successive images to reduce image data by temporally repeating portions of an image that are almost identical to portions of other images within a particular group of pictures (GOP), which is the atomic unit of an MPEG video stream. There commonly are two types of inter coded pictures for MPEG-2 encoded video: a predictive picture (P-picture) and a bidirectional predictive picture (B-picture). Similarly, there are two types of inter coded slices for H.264 encoded video: a predictive slice (P-slice) and a bidirectional predictive slice (B-slice).
In the MPEG-2 compression scheme, a P-picture contains motion vectors describing differences in the P-picture from the closest previous I-picture or P-picture. A B-picture contains motion vectors describing differences in the B-picture from previous or subsequent I-pictures or P-pictures. In the H.264 compression scheme, a P-slice contains predictors describing differences in the P-slice from a reference picture contained in a first list, commonly known as list 0. A B-slice contains predictors describing differences in the B-slice by considering either list 0, a second list known as list 1, or considering both list 0 and list 1 (bi-prediction). When bi-prediction is used, list 0 and list 1 predictors are averaged together to form a final predictor. Hereinafter, I-pictures and I-slices are collectively referred to as I-images, P-pictures and P-slices are collectively referred to as P-images, and B-pictures and B-slices are collectively referred to as B-images. An I-image, a plurality of P-images, and a plurality of B-images are typically provided in each group of images.
Digital television broadcast systems typically stream compressed video content to digital television receivers. Personal video recorders (PVRs) are oftentimes used in conjunction with the receivers to store the video content onto a hard disk drive (HDD), thereby enabling a viewer to time shift presentation of the video content and to implement trick mode playback of the video stream. Examples of trick mode playback are fast forward and fast reverse.
A video decoder is used to decode the video content when playback is desired. To decode a particular group of images, the decoder must first decode the I-image within the group of images, and then decode subsequent P-images and B-images within the group of images. During fast forward or fast reverse playback, only a fraction of the stored video images are displayed. However, because the compressed video is coded with inter-images dependencies (i.e. P-images and B-images), it is necessary to decode more compressed images than will be displayed. Thus, implementation of fast forward and fast reverse playback requires faster decoding speed than that required for normal playback. Fast reverse is even more problematic than fast forward playback, however, because normal decoding of images that are late in display order of a group of images require availability of decoded images that are intended for display earlier in the group of images.
With regards to the type of compression applied to a particular video stream, it should be noted that decoding of groups of images generated in accordance with the H.264 format is more computationally complex than decoding MPEG-2 images because the H.264 image groups include more potential inter-image dependencies. Thus, even greater decoding speed is needed to perform trickmode playback for a video stream generated in accordance with the H.264 format.
Video processors powerful enough to provide high speed decoding adequate for fast forward and fast reverse playback are expensive, especially those video processors which can provide fast reverse playback for an H.264 encoded video stream. Some prior art solutions to the above deficiencies include recording low resolution video signals using intra-frame encoding techniques. For example, U.S. Pat. No. 5,477,397 teaches recording low resolution video signals using intra-frame encoding techniques in a unique portion of a video tape for achieving trick modes. Such prior art solution, however require a lot of storage space, for example, enough tape space to record a second, low resolution version of a received video. Thus a solution is needed which enables fast forward and fast reverse playback to be performed using a low cost video processor and low cost storage means.